#ifndef PRECOMPILEDHEADER_H_
#define PRECOMPILEDHEADER_H_

#define WIN32_LEAN_AND_MEAN
#include <Windows.h>

// Used to determine if this is build is approved to distribute. Disables all debugging features.
#define _RELEASE_CANDIDATE 0

// standard includes
#include <vector>
#include <map>
#include <algorithm>

using namespace std;

// project based includes
#include "Events/IListener.h"

// Macros (they can be scary)

// A macro to disallow the copy constructor and operator= functions
// This should be used in the private: declarations for a class.
// Credit to Google C++ Style Guide of the macro.
#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
	TypeName(const TypeName&);               \
	void operator=(const TypeName&)

// Safe delete macro
#define SAFE_DELETE( obj ) \
	if( obj ) { delete obj; } obj = NULL

#endif //PRECOMPILEDHEADER_H_